relation-queries {prisma}
- aliases
- No value
- tags
- No value
- description
- No value
- links
- 0180 Prisma π https://www.prisma.io/docs/orm/prisma-client/queries/relation-queries
- status
- μμ±μ€
- project
- false
- area
- false
- resource
- false
- title
- relation-queries {prisma}
- created
- 2025-02-12T10:23:34
- updated
- 2025-04-12T15:40:53
include β 릴λ μ΄μ
μ μ νλ§ νκΈ° μν κ°λ¨ν μ΅μ
.
select β λ€μ€ν
μ΄ κ°λ₯ν 볡ν©μ μΈ μ΅μ
. μ΄λ¦μ²λΌ νΉμ ν νλλ§μ μ ννκΈ° μν΄ μ¬μ©λλ€.
μλλ Chat GPT 4.5κ° μμ±ν΄μ€ μ΄μ
Prisma Relation Queriesμ λν κ°μ΄λ
Prismaλ λ°μ΄ν°λ² μ΄μ€ 쿼리μμ κ΄κ³ λ°μ΄ν°λ₯Ό μμ½κ² λ€λ£° μ μλλ‘ λ κ°μ§ ν΅μ¬ μ΅μ
μΈ includeμ selectλ₯Ό μ 곡ν©λλ€. μ΄ λ¬Έμμμλ λ μ΅μ
μ μ¬μ©λ²κ³Ό μ μ€μΌμ΄μ€, κ·Έλ¦¬κ³ κΆμ₯λλ λ² μ€νΈ νλν°μ€λ₯Ό μκ°ν©λλ€.
1. include
includeλ Prismaμμ κ΄κ³λ λ°μ΄ν°λ₯Ό κ°λ¨νκ² κ°μ Έμ¬ λ μ¬μ©νλ μ΅μ
μ
λλ€. λ³λμ 볡μ‘ν νν°λ§ μμ΄ κ΄λ ¨λ λͺ¨λ νλλ₯Ό ν λ²μ λΆλ¬μ€λ μ©λλ‘ μ ν©ν©λλ€.
μ¬μ© μμ
const userWithPosts = await prisma.user.findUnique({
where: { id: 1 },
include: { posts: true },
});
μ μ€μΌμ΄μ€
- μ¬μ©μ νλ‘νκ³Ό κ·Έ μ¬μ©μμ λͺ¨λ κ²μκΈμ ν λ²μ κ°μ Έμ¬ λ.
- μ£Όλ¬Έκ³Ό ν¨κ» μ£Όλ¬Έλ λͺ¨λ μ ν λͺ©λ‘μ ν λ²μ κ°μ Έμ¬ λ.
λ² μ€νΈ νλν°μ€
- λ°μ΄ν°κ° μ κ³ κ°λ¨ν κ΄κ³μΌ λ μ£Όλ‘ μ¬μ©ν©λλ€.
- νμν νλκ° λͺ ννκ² μ ν΄μ§μ§ μμμ λ λΉ λ₯΄κ² ꡬνν μ μμ΅λλ€.
2. select
selectλ νΉμ νλλ§ μ ννμ¬ κ°μ Έμ€κ±°λ, λ€μ€ν
νμ¬ λ³΅μ‘ν κ΄κ³ λ°μ΄ν°λ₯Ό μ κ΅νκ² κ΄λ¦¬ν μ μλλ‘ λμμ€λλ€.
μ¬μ© μμ
const userSelectiveData = await prisma.user.findUnique({
where: { id: 1 },
select: {
name: true,
email: true,
posts: {
select: {
title: true,
publishedAt: true,
},
},
},
});
μ μ€μΌμ΄μ€
- ν΄λΌμ΄μΈνΈμ μ΅μνμ νλλ§ μ λ¬νμ¬ λ€νΈμν¬ ν¨μ¨μ±μ κ·Ήλνν λ.
- λ―Όκ°ν λ°μ΄ν°λ₯Ό μ μΈνκ³ μμ νκ² μ 보λ₯Ό μ λ¬ν λ.
- μ±λ₯ μ΅μ νλ₯Ό μν΄ λ°μ΄ν°λ² μ΄μ€μ λΆνμν νλ μ κ·Όμ μ΅μνν λ.
λ² μ€νΈ νλν°μ€
- κ΄κ³ λ°μ΄ν°κ° 볡μ‘νκ³ νλκ° λ§μ κ²½μ° μ κ·Ήμ μΌλ‘ νμ©νμΈμ.
- νμ νμν μ΅μ νλλ§ μ ννμ¬ μ±λ₯κ³Ό 보μμ λͺ¨λ κ³ λ €νμΈμ.
- API μλ΅μ μ΅μ νλ ννλ‘ λ°μ΄ν°λ₯Ό μ 곡ν λ ν¨κ³Όμ μ λλ€.
κ²°λ‘
- κ°λ¨ν κ΄κ³ λ°μ΄ν° β
include - 볡μ‘νκ³ μ κ΅ν νλ μ ν β
select
λ μ΅μ μ μ μ ν μ¬μ©νμ¬ λ°μ΄ν° μ²λ¦¬ μ±λ₯μ κ·Ήλννκ³ , μ μ§λ³΄μμ±μ λμ΄μΈμ.